#coding:utf-8

from socket import *
from time import ctime

print("======================时间戳TCP服务器===========================");

HOST = '127.0.0.1' #主机号为空白可以使用任何可用地址。
PORT = 21567 #端口号
BUFSIZ = 1024 #接收数据缓冲大小
ADDR = (HOST,PORT)

# 参考地址 https://blog.csdn.net/u010624263/article/details/84194470
# AF_INET ：面向网络的 / AF_UNIX 基于文件
# SOCK_STREAM ：面向连接的套接字 / SOCK_DGRAM 无连接的套接字
tcpSerSock = socket(AF_INET,SOCK_STREAM) #创建TCP服务器的套接字
tcpSerSock.bind(ADDR) #套接字与地址进行绑定
tcpSerSock.listen(5) #监听连接，同时连接请求的最大数目

while True:
    print('等待客户端连接......')
    tcpCliSock, addr = tcpSerSock.accept()
    print('取得连接',addr)

    while True:
        data = tcpCliSock.recv(BUFSIZ) #连续接收指定字节的数组，接收的是字节数组
        if not data: #如果数据空白，则表示客户端退出，所以退出接收
            break
        tcpCliSock.send(bytes('[%s] %s' % (ctime(), data.decode('utf-8')), 'utf-8')) #向客户端发送时间戳数据，必须发送字节数组

    tcpCliSock.close()  #关闭与客户端的连接
tcpSerSock.close()  #关闭服务器socket

